package com.example.shop_2208.utils

import android.content.Context
import com.alibaba.android.arouter.facade.Postcard
import com.alibaba.android.arouter.facade.annotation.Interceptor
import com.alibaba.android.arouter.facade.callback.InterceptorCallback
import com.alibaba.android.arouter.facade.template.IInterceptor
import com.alibaba.android.arouter.launcher.ARouter
import com.blankj.utilcode.util.SPUtils
import com.blankj.utilcode.util.SpanUtils
import com.blankj.utilcode.util.ToastUtils
import com.example.shop_2208.net.Const

/**
 * 登录拦截器 ---ARouter拦截器  添加注解  设置优先级  数越小优先级越高
 */
@Interceptor(priority = 1)
class LoginInterceptor:IInterceptor{
    override fun init(context: Context?) {

    }

    /**
     * postcard:路由信息 包含跳转的路径信息
     * InterceptorCallback:拦截器回调事件
     */
    override fun process(postcard: Postcard?, callback: InterceptorCallback?) {
        if("/app/login".equals(postcard?.path)
            ||"/app/register".equals(postcard?.path)
            ||SPUtils.getInstance().getString(Const.SP_TOKEN).isNotEmpty()){
            //当跳转到登录界面或者注册界面时，可直接向下进行
            // 如果当前账户已登录，其他路由信息也可以继续执行
            callback?.onContinue(postcard)//继续执行，给什么路径就跳转到什么页面去
        }else{
            //当前不存在账户登录时，跳转到登录界面（排除注册界面和登录界面）
            ToastUtils.showLong("还没登录，请先登录")
            ARouter.getInstance().build("/app/login").navigation()
        }
    }

}